Skip to main content

KTN-08

FieldIsi
Dokumen IDKTN-08
DeskripsiBooking stok: pencatatan reservasi stok dengan alur dokumen mirip Sales Order, tanpa field sales
Nomor Revisi1
Tanggal2026-10-04
KeteranganFitur baru; logika mirip SO, rule tanpa sales

1. Ringkasan​

a. In scope​

  • User melihat daftar Booking Stok (tanggal, nomor dokumen, customer, cabang, status)
  • User memfilter daftar berdasarkan nomor dokumen, tanggal, customer, cabang, dan status (draft / belum selesai / selesai)
  • User membuat Booking Stok: tanggal, customer, cabang, dan baris barang, disimpan sebagai draft atau final
  • User mengubah Booking Stok draft
  • User meneruskan Booking Stok final ke penjualan
  • User menyelesaikan Booking Stok (membatalkan sisa qty) atau memesan ulang sisa barang lalu menutup booking lama
  • User menghapus Booking Stok draft dan mencetak Booking Stok
  • Saat Booking Stok final, stok terkait di-booking / direservasi

b. Catatan​

  • Alur dokumen mengikuti pola Sales Order (draft / final, sisa qty, selesai, lanjut ke penjualan)
  • Rule utama pembeda: tidak ada field sales pada Booking Stok
  • Tidak ada metode pembayaran di Booking Stok; pembayaran dipilih saat diteruskan ke penjualan

c. Kesimpulan​

  • [FE] Buat halaman daftar Booking Stok (filter, status, aksi)
  • [FE] Buat halaman create / edit draft Booking Stok tanpa field sales
  • [FE] Buat halaman detail Booking Stok beserta aksi selesaikan, pesan ulang, hapus draft, cetak, dan buat penjualan atas booking
  • [FE] Tambah opsi buat penjualan dari Booking Stok
  • [FE] Aktifkan menu Booking Stok di navigasi brand
  • [BE] Buat endpoint CRUD invoice Booking Stok
  • [BE] Reservasi stok saat Booking Stok final; lepas / potong sesuai penyelesaian atau penjualan
  • [BE] Endpoint selesaikan booking, pesan ulang, dan create penjualan dari booking

2. Functional Requirement​

KodeDeskripsi
FR-01Sistem menampilkan daftar Booking Stok dengan tanggal, nomor dokumen, customer, cabang, dan status
FR-02User dapat memfilter daftar Booking Stok
FR-03User dapat membuat Booking Stok dengan baris barang sebagai draft atau final, tanpa field sales
FR-04User dapat mengubah Booking Stok draft
FR-05Booking Stok final mereservasi stok sesuai qty baris
FR-06User dapat meneruskan Booking Stok final berstatus belum selesai ke penjualan
FR-07User dapat menyelesaikan Booking Stok dengan membatalkan sisa qty
FR-08User dapat memesan ulang sisa barang ke Booking Stok baru sekaligus menutup booking lama
FR-09User dapat menghapus Booking Stok draft dan mencetak Booking Stok final

3. Use Case List​

KodeDeskripsi
UC-01Melihat daftar Booking Stok
UC-02Memfilter daftar Booking Stok
UC-03Membuat Booking Stok
UC-04Mengubah Booking Stok draft
UC-05Meneruskan Booking Stok ke penjualan
UC-06Menyelesaikan Booking Stok
UC-07Memesan ulang sisa barang dan menutup Booking Stok
UC-08Menghapus Booking Stok draft
UC-09Mencetak Booking Stok

4. Use Case Scenario​

UC-01 : Melihat daftar Booking Stok​

AktorUser dengan hak lihat Booking Stok
DeskripsiUser melihat daftar Booking Stok
PrekondisiUser sudah login
Brand aktif
Alur utama1. User membuka menu Booking Stok.
2. Sistem menampilkan daftar Booking Stok (tanggal, nomor, customer, cabang, status).
3. User dapat membuka detail dari baris daftar.
Alur negatif- Jika tidak ada data, tampil daftar kosong.
- Jika gagal memuat, muncul pesan error.
Bisnis rule- Status: draft = belum final; belum selesai = final masih punya sisa qty; selesai = final sudah ditutup.
- Daftar tidak menampilkan kolom sales.
PostkondisiDaftar Booking Stok tampil
TriggerUser membuka menu Booking Stok
Kode FRFR-01

UC-02 : Memfilter daftar Booking Stok​

AktorUser dengan hak lihat Booking Stok
DeskripsiUser menyaring daftar Booking Stok
PrekondisiHalaman daftar terbuka
Alur utama1. User mencari nomor dokumen atau membuka Filter.
2. User memilih tanggal, customer, cabang, dan/atau status.
3. Sistem memuat ulang daftar.
Alur negatif- Jika tidak ada data cocok, tampil daftar kosong.
Bisnis rule- Filter tidak memakai sales.
PostkondisiDaftar tampil sesuai filter
TriggerUser mengubah filter
Kode FRFR-02

UC-03 : Membuat Booking Stok​

AktorUser dengan hak tambah Booking Stok
DeskripsiUser mencatat reservasi stok untuk customer
PrekondisiUser sudah login
Hak tambah Booking Stok
Alur utama1. User klik Tambah.
2. User mengisi tanggal, customer, dan cabang (tanpa sales).
3. User menambah baris barang (barang, satuan, qty, harga bila dipakai, keterangan).
4. User klik Simpan Draft atau Simpan Final, lalu konfirmasi untuk final.
5. Sistem membuat Booking Stok berstatus belum selesai.
6. Jika final, sistem mereservasi stok sesuai qty baris.
Alur negatif- Jika form / rincian belum valid, simpan ditolak dan muncul pesan lengkapi data.
- Jika stok tidak cukup saat final, booking ditolak.
- Jika gagal menyimpan, muncul pesan error.
Bisnis rule- Tidak ada field sales.
- Tidak ada metode pembayaran di Booking Stok.
- Draft belum mereservasi stok; final mereservasi stok.
- Sisa qty awal tiap baris = qty booking.
PostkondisiBooking Stok tersimpan sebagai draft atau final
TriggerUser klik Simpan
Kode FRFR-03
FR-05

UC-04 : Mengubah Booking Stok draft​

AktorUser dengan hak tambah Booking Stok
DeskripsiUser memperbarui Booking Stok yang masih draft
PrekondisiBooking Stok berstatus draft
Alur utama1. User memilih Edit.
2. Sistem memuat header dan baris.
3. User mengubah data lalu menyimpan draft atau final.
4. Jika final, sistem mereservasi stok.
Alur negatif- Validasi sama seperti pembuatan.
- Edit tidak tersedia untuk dokumen final.
Bisnis rule- Edit hanya untuk draft.
- Tetap tanpa field sales.
PostkondisiBooking Stok terbarui
TriggerUser klik Edit lalu Simpan
Kode FRFR-04
FR-05

UC-05 : Meneruskan Booking Stok ke penjualan​

AktorUser dengan hak tambah penjualan
DeskripsiUser membuat invoice penjualan dari Booking Stok final
PrekondisiBooking Stok final berstatus belum selesai
Alur utama1. User memilih buat penjualan atas Booking Stok.
2. Sistem membuka form penjualan dengan data booking terisi (customer, cabang, barang, sisa qty).
3. User melengkapi penjualan (termasuk sales bila diperlukan di penjualan) lalu menyimpan.
4. Sistem mengurangi sisa qty booking sesuai qty yang dijual dan melepas / memotong reservasi terkait.
Alur negatif- Menu tidak tampil untuk draft atau booking selesai.
- Jika sisa qty tidak cukup, penjualan ditolak.
Bisnis rule- Sales diisi di penjualan bila perlu, bukan di Booking Stok.
- Pembayaran dipilih di penjualan, bukan di booking.
PostkondisiForm / invoice penjualan dari booking terbentuk; sisa booking terbarui
TriggerUser klik buat penjualan atas Booking Stok
Kode FRFR-06

UC-06 : Menyelesaikan Booking Stok​

AktorUser dengan hak tambah Booking Stok
DeskripsiUser menutup booking dan membatalkan sisa qty yang belum terpenuhi
PrekondisiBooking Stok final berstatus belum selesai
Alur utama1. User memilih Selesaikan Booking Stok.
2. Sistem meminta konfirmasi.
3. User mengonfirmasi.
4. Sistem mengubah status menjadi selesai, mencatat sisa qty sebagai dibatalkan, dan melepas reservasi sisa.
Alur negatif- Jika gagal, status tidak berubah dan muncul pesan error.
Bisnis rule- Sisa qty tiap baris dicatat sebagai qty dibatalkan.
- Reservasi sisa dilepas.
PostkondisiBooking Stok berstatus selesai
TriggerUser klik Selesaikan
Kode FRFR-07

UC-07 : Memesan ulang sisa barang dan menutup Booking Stok​

AktorUser dengan hak tambah Booking Stok
DeskripsiUser memindahkan sisa barang booking lama ke Booking Stok baru
PrekondisiBooking final berstatus belum selesai dengan sisa qty
Alur utama1. User memilih Pesan Ulang & Tutup.
2. Sistem menampilkan baris beserta sisa qty.
3. User memilih barang yang dipesan ulang.
4. Sistem membuka form Booking Stok baru dengan barang terpilih (tanpa sales).
5. User menyimpan booking baru.
6. Sistem membuat booking baru dan menutup / menyesuaikan booking lama.
Alur negatif- Jika gagal memuat booking lama, proses dihentikan.
- Jika simpan gagal, booking baru tidak terbentuk.
Bisnis rule- Tetap tanpa field sales pada booking baru.
- Sisa yang dipesan ulang dicatat dibatalkan / dipindah dari booking lama sesuai aturan back order.
PostkondisiBooking baru tersimpan; booking lama tertutup untuk barang terpilih
TriggerUser klik Pesan Ulang & Tutup
Kode FRFR-08

UC-08 : Menghapus Booking Stok draft​

AktorUser dengan hak hapus draft Booking Stok
DeskripsiUser menghapus Booking Stok draft
PrekondisiBooking Stok berstatus draft
Alur utama1. User memilih Hapus.
2. Sistem meminta konfirmasi.
3. User mengonfirmasi.
4. Sistem menghapus booking.
Alur negatif- Jika gagal, muncul pesan error.
Bisnis rule- Hapus hanya untuk draft (belum ada reservasi stok final).
PostkondisiBooking Stok terhapus
TriggerUser klik Hapus
Kode FRFR-09

UC-09 : Mencetak Booking Stok​

AktorUser dengan hak cetak Booking Stok
DeskripsiUser mencetak dokumen Booking Stok
PrekondisiBooking Stok berstatus final
Alur utama1. User memilih Cetak.
2. Sistem menampilkan dokumen cetak Booking Stok.
Alur negatif- Jika gagal memuat detail, cetak tidak tampil.
Bisnis rule- Cetakan tidak menampilkan sales.
PostkondisiDokumen Booking Stok tercetak / siap cetak
TriggerUser klik Cetak
Kode FRFR-09

5. Data Flow Diagram​

DFD-01 — Booking Stok mirip SO tanpa sales​

6. Sequence Diagram​

SD-01 — UC-01 : Melihat daftar Booking Stok​

SD-02 — UC-02 : Memfilter daftar Booking Stok​

SD-03 — UC-03 : Membuat Booking Stok​

SD-04 — UC-04 : Mengubah Booking Stok draft​

SD-05 — UC-05 : Meneruskan Booking Stok ke penjualan​

SD-06 — UC-06 : Menyelesaikan Booking Stok​

SD-07 — UC-07 : Memesan ulang sisa barang dan menutup Booking Stok​

SD-08 — UC-08 : Menghapus Booking Stok draft​

SD-09 — UC-09 : Mencetak Booking Stok​

7. Table Schema​

TableFieldStatusDeskripsi
Invoice_Booking_Stok (header)customer_id, gudang_id, tanggal, is_tercetak, status, …newHeader booking; tanpa sales_id
Booking_Stoks (baris)barang_id, sku_id, satuan_id, quantity, qty_sisa, qty_terpenuhi, qty_cancelled, …newRincian qty booking dan sisa

8. API Schema​

EndpointStatusPerubahan
GET /invoice-booking-stoknewList + filter Booking Stok
GET /invoice-booking-stok/:idnewDetail header + baris
POST /invoice-booking-stoknewCreate draft/final; final → reservasi stok; tanpa sales_id
PUT /invoice-booking-stok/:idnewUpdate draft, selesaikan, back order
DELETE /invoice-booking-stok/:idnewHapus draft
POST /penjualanchangedTerima referensi booking (invoice_booking_id) dan kurangi sisa / reservasi